package top.igotcha.mapreduce.wordcount;

import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Partitioner;

/**
 * @time 2021/1/11
 * @auth Gotcha
 * @describe
 * Partitioner
 *  KEY:k2的类型     每个单词        Text
 *  VALUE:v2的类型   固定值，1   LongWritable
 */
public class PartitionerOwn extends Partitioner<Text,LongWritable> {
    /**
     * @param text 表示k2
     * @param longWritable 表示v2
     * @param i 表示分区个数（reduce个数）
     * @return
     */
    @Override
    public int getPartition(Text text, LongWritable longWritable, int i) {
        //如果单词长度大于等于5，进入第一个分区，第一个ReduceTask，即reduce编号为0
        if (text.getLength()>=5){
            return 0;
        } else  {
        //如果单词长度小于5，进入第二个分区，第二个ReduceTask，即reduce编号为1
            return 1;
        }
    }
}
